BIN=code #可执行程序
SRC=$(wildcard *.c)
#SRC=$(shell ls *.c) #源文件列表放到变量SRC中
OBJ=$(SRC:.c=.o)
CC=gcc #编译器
RM=rm -rf #删除命令

$(BIN):$(OBJ)
	@#gcc $(OBJ) -o $(BIN)
	@$(CC) $^ -o $@ #加上@符号不让命令回显
	@echo "链接 $^ 成 $@"
%.o:%.c
	@$(CC) -c $<
	@echo "编译... $< 成 $@"

.PHONY:clean
clean:
	@$(RM) $(BIN) $(OBJ)

.PHONY:test
test:
	@echo $(BIN)
	@echo $(SRC) #不会让命令进行回显
	@echo $(QBJ)

# $(变量)->内容，比如：$(BIN)->code 
# 照着下面改即可
#$(BIN):$(OBJ)
#	$(CC) $(OBJ) -o $(BIN)
#$(OBJ):$(SRC)
#	$(CC) -c $(SRC) -o $(OBJ)
#
#.PHONY:clean
#clean:
#	$(RM) $(BIN) $(OBJ)
#


#code:code.o
#	gcc code.o -o code 
#code.o:code.c
#	gcc -c code.c -o code.o
#
#.PHONY:clean 
#clean:
#	rm -rf *.o code
#

#code:code.o
#	gcc code.o -o code 
#code.o:code.s
#	gcc -c code.s -o code.o
#code.s:code.i
#	gcc -S code.i -o code.s
#code.i:code.c
#	gcc -E code.c -o code.i
#
#.PHONY:clean 
#clean:
#	rm -rf *.o *.i *.s code
#

#code:code.c
#	gcc code.c -o code
#.PHONY:clean
#clean:
#	rm -f code
#


